home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / DEMO / VDIDEMO.M < prev    next >
Encoding:
Text File  |  1990-10-13  |  1.7 KB  |  69 lines

  1. MODULE VDIDemo; (*$E MOS*)
  2.  
  3. (*
  4.  * Dies Programm zeigt die Anwendung vom Modul 'GEMBase' zum direkten
  5.  * Zugriff auf die VDI-Funktionen/Parameter.
  6.  * Die hier gezeigte Anwendung, der Aufruf der Line-Funktion des VDI,
  7.  * ist sinnlos, weil sie schon in den normalen VDI-Modulen enthalten ist.
  8.  * Sinnvoll wird dies erst bei Zugriff auf Funktionen, die vielleicht
  9.  * in einer späteren GEM-Version implementiert werden und wir unsere
  10.  * VDI-Module noch nicht adaptiert haben. Selbstverständlich müssen Sie
  11.  * dann selbst über die benötigten Aufrufparameter informiert sein.
  12.  *
  13.  * Dies Demoprogramm von Michael Seyfried erstellt und durch TT von seinem
  14.  * AESBase/VDIBase auf GEMBase angepaßt.
  15.  *)
  16.  
  17. FROM SYSTEM IMPORT ADR;
  18.  
  19. IMPORT GEMEnv;
  20.  
  21. IMPORT GEMBase;
  22.  
  23. IMPORT Terminal;
  24.  
  25.  
  26. VAR dev: GEMEnv.DeviceHandle;
  27.     gemHdl: GEMEnv.GemHandle;
  28.     vdiHdl: INTEGER;
  29.     ok: BOOLEAN;
  30.  
  31. PROCEDURE Line (x1, y1, x2, y2: INTEGER);
  32.   (*
  33.    * Implementation von Line mit Hilfe von VDIBase.
  34.    *)
  35.   VAR aespb: GEMBase.AESPB; vdipb: GEMBase.VDIPB;
  36.   BEGIN
  37.     GEMBase.GetPBs (gemHdl, vdipb, aespb);
  38.     WITH vdipb DO
  39.       WITH pblock^ DO
  40.         opcode:= 6;
  41.         sptsin:= 2;
  42.         sptsout:= 0;
  43.         sintin:= 0;
  44.         sintout:= 0;
  45.       END;
  46.       pblock^.handle:= vdiHdl;
  47.       pioff^[0]:= x1;
  48.       pioff^[1]:= y1;
  49.       pioff^[2]:= x2;
  50.       pioff^[3]:= y2;
  51.     END;
  52.     GEMBase.CallVDI (ADR (vdipb));
  53.   END Line;
  54.  
  55. BEGIN
  56.   (* Beim GEM anmelden *)
  57.   GEMEnv.InitGem (GEMEnv.RC, dev, ok);
  58.   IF NOT ok THEN HALT END;
  59.   
  60.   (* GEM-Handle ermitteln *)
  61.   gemHdl:= GEMEnv.CurrGemHandle ();
  62.  
  63.   (* INTEGER-Wert des VDI-Handle ermitteln *)
  64.   vdiHdl:= GEMBase.VDIHandle (dev);
  65.  
  66.   (* Linie zeichnen *)
  67.   Line (0, 0, 639, 399);
  68. END VDIDemo.
  69.